package com.amsp.oa.oademo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@TableName("performance_bonus")
@ApiModel(value = "绩效奖金申请")
public class PerformanceBonus {

    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty("申请日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate applyDate;

    @ApiModelProperty("申请人")
    private String applicant;

    @ApiModelProperty("部门")
    private String department;

    @ApiModelProperty("职位")
    private String position;

    @ApiModelProperty("工作业绩概述")
    private String workPerformanceOverview;

    @ApiModelProperty("自我评估")
    private String selfAssessment;

    @ApiModelProperty("部门经理评价")
    private String managerEvaluation;

    @ApiModelProperty("推荐绩效奖金额/比例")
    private String recommendedBonus;

    @ApiModelProperty("其他评价或建议")
    private String otherComments;

    @ApiModelProperty("经理签名")
    private String managerSignature;

    @ApiModelProperty("人力资源部意见")
    private String hrComment;

    @ApiModelProperty("人力资源签字日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate hrSignatureDate;

    @ApiModelProperty("高层管理人员审批")
    private String executiveApproval;

    @ApiModelProperty("高层管理签字日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate executiveSignatureDate;

    @ApiModelProperty("备注")
    private String remarks;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
}